<?php

class UsersController extends AppController {
  
  
    public $uses = array("User", 'Info', 'Profi','Estudo');
    public $helpers = array('Cakebr.Formatacao', 'Form2');
    public $paginate = array(
        "Pagina" => array(
            "limit" => 30,
            "order" => array(
                "Pagina.id" => "ASC"
            )
        )
    );
	
 var $components = array('Email', 'RequestHandler', 'Auth');

	function beforeFilter()
	{
		parent::beforeFilter();
		
		Security::setHash('sha256'); // Setamos o algoritmo que iremos utilizar, o padrão é sha1
		$this->Auth->authError = 'Área Restrita! Efetue login!'; // Mensagem ao entrar em area restrita
		$this->Auth->loginError = 'Nome de usuário ou senha não conferem!'; // Mensagem quando não se autenticar
		$this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'area_restrita');
		
		$this->Auth->fields = array(
			'username' => 'cpf',
			'password' => 'password'
		);
		
		$this->Auth->allow('users', 'cadastrar', 'panel', 'editar', 'estudo', 'recebe');

            Configure::write(
                'Base', array('this' => $this->User, 'tabela' => 'User')
            );

	}

    public function index($id = null)
	{
       
    }
	
	
    function estudo()
	{
		echo("<pre>");
		$estudo = $this->Estudo->find('all');
		$this->set('estudo', $estudo);
		print_r($estudo);
		echo("</pre>");
		//echo("sa");
		//print_r($this->data);
    }
	
	function recebe()
	{
		$this->Profi->save($this->data['Estudo']);
		$this->redirect(array('controller' => 'users', 'action' => 'estudo'));
    }
	
	function mudarsenha($id = null)
	{
       //$this->set('id', $this->Auth->user('id'));
	   
		if($this->data)
		{
			if($this->data['TrocaSenha']['senha'] == $this->data['TrocaSenha']['confirmar_senha'])
			{
				$this->User->read(null, $this->Auth->user('id'));
				$this->User->set(array(
				'password' =>  $this->Auth->password($this->data['TrocaSenha']['senha'])
				));
				$this->User->save();
				$this->set('msg', "Senha alterada com sucesso");
			}
			else
			{
				$this->set('msg', "As senhas não conferem.");
			}
			/*echo("<pre>");
			print_r($this->data);
			echo("</pre>");*/
		}
		else
		{
		   $this->set('msg', null);
		}
    }
	
	function area_restrita()
	{
		if($this->data)
		{
			
			if(isset($this->data['Pro']['objetivo']))
			{
				if($this->data['Pro']['objetivo'] == "adicionar")
				{
					$this->data['Pro']['data_admissao'] = implode("-", array_reverse(explode("-", substr($this->data['Pro']['data_admissao'], 0, 10)))).substr($this->data['Pro']['data_admissao'], 10);
					$this->data['Pro']['data_demissao'] = implode("-", array_reverse(explode("-", substr($this->data['Pro']['data_demissao'], 0, 10)))).substr($this->data['Pro']['data_admissao'], 10);
					//print_r($this->data['Pro']);
					$this->Profi->save($this->data['Pro']);
				}
				
				if($this->data['Pro']['objetivo'] == "editar")
				{
					$this->data['Pro']['data_admissao'] = implode("-", array_reverse(explode("-", substr($this->data['Pro']['data_admissao'], 0, 10)))).substr($this->data['Pro']['data_admissao'], 10);
					$this->data['Pro']['data_demissao'] = implode("-", array_reverse(explode("-", substr($this->data['Pro']['data_demissao'], 0, 10)))).substr($this->data['Pro']['data_admissao'], 10);
					$this->Profi->read(null, $this->data['Pro']['id']);
					$this->Profi->save($this->data['Pro']);
				}
				
				if($this->data['Pro']['objetivo'] == "deletar")
					{
						//echo($this->data['Pro']['id']);
//						$this->Profi->set($this->data);
						$this->Profi->read(null, $this->data['Pro']['id']);
						$this->Profi->remover();
					}
			}
			else
			{
				$this->data['Info']['habilitacao_emissao'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['habilitacao_emissao'], 0, 10)))).substr($this->data['Info']['habilitacao_emissao'], 10);
				
				$this->data['Info']['habilitacao_validade'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['habilitacao_validade'], 0, 10)))).substr($this->data['Info']['habilitacao_validade'], 10);
				
				$this->data['Info']['nascimento'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['nascimento'], 0, 10)))).substr($this->data['Info']['nascimento'], 10);
				
				$this->data['Info']['rg_expedicao'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['rg_expedicao'], 0, 10)))).substr($this->data['Info']['rg_expedicao'], 10);
				
				$this->User->read(null, $this->data['User']['id']);
				$this->User->save($this->data['User']);
				$this->Info->read(null, $this->data['Info']['id']);
				$this->Info->save($this->data['Info']);
			}
			
		}
		
		$this->set('nome', $this->Auth->user('nome'));
		
		$lista_hab = $this->Info->getEnumValues('habilitacao_categoria');
		$this->set('lista_hab', $lista_hab);
		
		$lista_sexo = $this->Info->getEnumValues('sexo');
		$this->set('lista_sexo', $lista_sexo);
		
		$estadoCivil = $this->Info->getEnumValues('estado_civil');
		$this->set('estadoCivil', $estadoCivil);
		
		$nivel_conhecimento = $this->Info->getEnumValues('nivel_ingles');
		$this->set('nivel_conhecimento', $nivel_conhecimento);
		
		$nivel_academico = $this->Info->getEnumValues('nivel_academico');
		$this->set('nivel_academico', $nivel_academico);
		
		$nivel_informatica = $this->Info->getEnumValues('conhecimento_word');
		$this->set('nivel_informatica', $nivel_informatica);
		
		
		$listaDeficiencias = $this->Info->getEnumValues('pessoa_deficiente');
		$this->set('listaDeficiencias', $listaDeficiencias);
		
		$lista_regiao = $this->Info->getEnumValues('regiao');
		$this->set('lista_regiao', $lista_regiao);
		
		$lista_dependentes = $this->Info->getEnumValues('dependentes');
		$this->set('lista_dependentes', $lista_dependentes);
		
		//$this->data = $this->Info->read(null, $this->Auth->user('id'));
		
		$conditions = array("Info.usuario_id" => $this->Auth->user('id'));
		//$conditions = '';
		//Example usage with a model:
		$this->data = $this->Info->find('first', array('conditions' => $conditions));
		
		$this->data['Info']['habilitacao_emissao'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['habilitacao_emissao'], 0, 10)))).substr($this->data['Info']['habilitacao_emissao'], 10);
				
				$this->data['Info']['habilitacao_validade'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['habilitacao_validade'], 0, 10)))).substr($this->data['Info']['habilitacao_validade'], 10);
				
				$this->data['Info']['nascimento'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['nascimento'], 0, 10)))).substr($this->data['Info']['nascimento'], 10);
				
				$this->data['Info']['rg_expedicao'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['rg_expedicao'], 0, 10)))).substr($this->data['Info']['rg_expedicao'], 10);

		$this->set('dados', $this->data);
		$this->set('id', $this->Auth->user('id'));
	}
	
	
	function area_restritateste()
	{
		if($this->data)
		{
			
			if(isset($this->data['Pro']['objetivo']))
			{
				if($this->data['Pro']['objetivo'] == "adicionar")
				{
					$this->data['Pro']['data_admissao'] = implode("-", array_reverse(explode("-", substr($this->data['Pro']['data_admissao'], 0, 10)))).substr($this->data['Pro']['data_admissao'], 10);
					$this->data['Pro']['data_demissao'] = implode("-", array_reverse(explode("-", substr($this->data['Pro']['data_demissao'], 0, 10)))).substr($this->data['Pro']['data_admissao'], 10);
					//print_r($this->data['Pro']);
					$this->Profi->save($this->data['Pro']);
				}
				
				if($this->data['Pro']['objetivo'] == "editar")
				{
					$this->data['Pro']['data_admissao'] = implode("-", array_reverse(explode("-", substr($this->data['Pro']['data_admissao'], 0, 10)))).substr($this->data['Pro']['data_admissao'], 10);
					$this->data['Pro']['data_demissao'] = implode("-", array_reverse(explode("-", substr($this->data['Pro']['data_demissao'], 0, 10)))).substr($this->data['Pro']['data_admissao'], 10);
					$this->Profi->read(null, $this->data['Pro']['id']);
					$this->Profi->save($this->data['Pro']);
				}
				
				if($this->data['Pro']['objetivo'] == "deletar")
					{
						//echo($this->data['Pro']['id']);
//						$this->Profi->set($this->data);
						$this->Profi->read(null, $this->data['Pro']['id']);
						$this->Profi->remover();
					}
			}
			else
			{
				$this->data['Info']['habilitacao_emissao'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['habilitacao_emissao'], 0, 10)))).substr($this->data['Info']['habilitacao_emissao'], 10);
				
				$this->data['Info']['habilitacao_validade'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['habilitacao_validade'], 0, 10)))).substr($this->data['Info']['habilitacao_validade'], 10);
				
				$this->data['Info']['nascimento'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['nascimento'], 0, 10)))).substr($this->data['Info']['nascimento'], 10);
				
				$this->data['Info']['rg_expedicao'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['rg_expedicao'], 0, 10)))).substr($this->data['Info']['rg_expedicao'], 10);
				
				$this->User->read(null, $this->data['User']['id']);
				$this->User->save($this->data['User']);
				$this->Info->read(null, $this->data['Info']['id']);
				$this->Info->save($this->data['Info']);
			}
			
		}
		
		$this->set('nome', $this->Auth->user('nome'));
		
		$lista_hab = $this->Info->getEnumValues('habilitacao_categoria');
		$this->set('lista_hab', $lista_hab);
		
		$lista_sexo = $this->Info->getEnumValues('sexo');
		$this->set('lista_sexo', $lista_sexo);
		
		$estadoCivil = $this->Info->getEnumValues('estado_civil');
		$this->set('estadoCivil', $estadoCivil);
		
		$nivel_conhecimento = $this->Info->getEnumValues('nivel_ingles');
		$this->set('nivel_conhecimento', $nivel_conhecimento);
		
		$nivel_academico = $this->Info->getEnumValues('nivel_academico');
		$this->set('nivel_academico', $nivel_academico);
		
		$nivel_informatica = $this->Info->getEnumValues('conhecimento_word');
		$this->set('nivel_informatica', $nivel_informatica);
		
		
		$listaDeficiencias = $this->Info->getEnumValues('pessoa_deficiente');
		$this->set('listaDeficiencias', $listaDeficiencias);
		
		$lista_regiao = $this->Info->getEnumValues('regiao');
		$this->set('lista_regiao', $lista_regiao);
		
		$lista_dependentes = $this->Info->getEnumValues('dependentes');
		$this->set('lista_dependentes', $lista_dependentes);
		
		//$this->data = $this->Info->read(null, $this->Auth->user('id'));
		
		$conditions = array("Info.usuario_id" => $this->Auth->user('id'));
		//$conditions = '';
		//Example usage with a model:
		$this->data = $this->Info->find('first', array('conditions' => $conditions));
		
		$this->data['Info']['habilitacao_emissao'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['habilitacao_emissao'], 0, 10)))).substr($this->data['Info']['habilitacao_emissao'], 10);
				
				$this->data['Info']['habilitacao_validade'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['habilitacao_validade'], 0, 10)))).substr($this->data['Info']['habilitacao_validade'], 10);
				
				$this->data['Info']['nascimento'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['nascimento'], 0, 10)))).substr($this->data['Info']['nascimento'], 10);
				
				$this->data['Info']['rg_expedicao'] = implode("-", array_reverse(explode("-", substr($this->data['Info']['rg_expedicao'], 0, 10)))).substr($this->data['Info']['rg_expedicao'], 10);

		$this->set('dados', $this->data);
		$this->set('id', $this->Auth->user('id'));
	}


   function panel()
	{		
		$this->set('habCatOptions', 'a');
	}
	
	function login()
	{
		/*$this->User->create();
					$this->User->set(array('nome' => 'samuel', 'cpf' => '135','senha' => 'admin', 'password' => $this->Auth->password('admin'), 'username' => 'admin'));
					$this->User->save();*/
	}

	function logout()
	{
		$this->redirect($this->Auth->logout()); // Efetuamos logout
	}
	
	function editar($id = null)
	{
		$experiencias = $this->Profi->find('first', array('conditions' => array('Profi.usuario_id' => $id)));
		$this->set('experiencias', $experiencias);
		
		
	}
	
	function calculardias()
	{
	}
	
	function usuarios()
	{
	}
	
	function email($emailCliente, $nomeCliente)
	{
		$this->set("tipo", "Currículos");
		
		## Envio de Email Para o Administrador ##
		#########################################
		
		// Configurações da escrita do email
		$this->loadModel('Comunicacoes');
        $content_email = $this->Comunicacoes->read(null, 5); // 3 = ToAdmin
		
		// Configurações do envio do email
		$this->loadModel('Modulo');
        $smtp_email = $this->Modulo->read('Modulo.valor', 1);
        $smtp_usuario = $this->Modulo->read('Modulo.valor', 4);
        $smtp_senha = $this->Modulo->read('Modulo.valor', 5);
        $smtp_host = $this->Modulo->read('Modulo.valor', 2);
        $smtp_port = $this->Modulo->read('Modulo.valor', 32);

        $smtp_email = $smtp_email['Modulo']['valor'];
        $smtp_usuario = $smtp_usuario['Modulo']['valor'];
        $smtp_senha = $smtp_senha['Modulo']['valor'];
        $smtp_host = $smtp_host['Modulo']['valor'];
        $smtp_port = $smtp_port['Modulo']['valor'];
		
		// Envio do email
		$this->Email->smtpOptions = array(
		'port'=>$smtp_port,
		'timeout'=>'30',
		'host' => $smtp_host,
		'client' => $smtp_usuario
		);
		
		$this->Email->delivery = 'smtp';
		$this->Email->to = $emailCliente;
		$this->Email->subject = 'All Brazil - Bem vindo!';
		$this->Email->replyTo = $smtp_email;
		$this->Email->from = "All Brazil".' <'.$smtp_email.'>';
		$this->Email->layout = 'contato';
		$this->Email->template = 'default';
		$this->Email->sendAs = 'html';
		$content = $content_email['Comunicacoes']['texto'];
		
		$content=str_replace("[%%Usuario.nome%%]","$nomeCliente", $content);
		
		$this->set("content", $content);
		
		$this->Email->send(); // Envia
	}
	
	function cadastrar()
	{
		
		$pode = true;
		
		$usuarios = $this->User->find('count', array(
		'conditions' => array('User.cpf' => $this->data['Info']['cpf'])
		));
		
		//print_r($usuarios);
		
		if($usuarios == 0)
		{
			//$pode = true;
			$this->set('msgErro', "Cadastro realizado com sucesso.");
		}
		else
		{
			$pode = false;
			$this->set('msgErro', "CPF já cadastrado.");
		}
		
		if($this->data['Info']['nome'] == "")
		{
			$pode = false;
			$this->set('msgErro', "Preencha o campo Nome.");
		}
		else
		{
			//echo("start");
			//$pode = true;
		}
		
		if($this->data['Info']['senha'] == "")
		{
			$pode = false;
			$this->set('msgErro', "Preencha o campo Senha. ");
		}
		else
		{
			
		}
		
		if($this->data['Info']['senha'] != $this->data['Info']['confirmar_senha'])
		{
			$pode = false;
			$this->set('msgErro', "As senhas não conferem");
		}
		else
		{
			//echo("start");
			//$pode = true;
		}
		
		//print_r($this->data);
				
		$info = $this->data;
		$this->set('pode', $pode);
		
		if($this->data & $pode)
		{
			$this->User->create();
			$this->User->set(array(
			'nome' => $info['Info']['nome'],
			'cpf' => $info['Info']['cpf'],
			'password' => $this->Auth->password($info['Info']['senha']),
			'confirmar_senha' => $this->Auth->password($info['Info']['confirmar_senha']),
			'username' => 'admin2'));
			$this->User->save();
			
			$this->loadModel('Info');//acertar nome depois.
			$this->Info->create();
			$this->Info->set(array(
			'usuario_id' => $this->User->getLastInsertId(),
			'email' => $info['Info']['email']));
			$this->Info->save($this->data);
			
			$this->email($info['Info']['email'], $info['Info']['nome']);
			
			$this->set('s',$info['Info']['senha']);
			$this->set('c',$info['Info']['cpf']);
			
			
			
			/*$this->loadModel('Profi');//acertar nome depois.
			$this->Profi->create();
			$this->Profi->set(array('usuario_id' => $this->User->getLastInsertId(), 'info_id' => $this->Info->getLastInsertId()));
			$this->Profi->save($this->data);
			*/
			//$this->redirect($this->Auth->login());
			
			}
	}
}
?>